import { specslist, specscount } from '../../api/api'

const state = {
  specsList: [],
  // 页面显示条数
  pageSize: 3,
  // 页码
  pageNum: 1,
  // 总条数
  count: 0

}
const getters = {
  getSpecs (state) {
    return state.specsList
  },
  getSize (state) {
    return state.pageSize
  },
  getCount (state) {
    return state.count
  }

}
const mutations = {
  REQ_SPECS (state, payload) {
    state.specsList = payload
  },
  REQ_SPECSCOUNT (state, payload) {
    state.count = payload
  },
  REQ_PageNum (state, payload) {
    state.pageNum = payload
  }

}
// 获取管理源列表 调用接口
const actions = {
  getSpecslist (context) {
    // size  查询条数   page 页码
    specslist({ size: context.state.pageSize, page: context.state.pageNum }).then(res => {
    //  删除非第一页 最后一条数据的时候 出现bug 他依然 去获取当前页码,
    // 导致当前页码空数据无法查询到 视图数据列表没有更新
    /*
     解决把pagenum -1 就可以了  判断条件
     后端 返回空 无法进行判断 需进行转化
    */
      if (res.code === 200) {
        const list = res.list ? res.list : []
        if (context.state.pageNum !== 1 && list.lengt === 0) {
          context.dispatch('changePageAction', context.state.pageNum - 1)
        }
        context.commit('REQ_SPECS', res.list)
      }
    })
  },
  // 获取总条数
  getUsercount (context) {
    specscount().then(res => {
      if (res.code === 200) {
        context.commit('REQ_SPECSCOUNT', res.list[0].total)
      }
    })
  },
  // 获取当前页重新调用列表
  changePageAction (context, n) {
    context.commit('REQ_PageNum', n)
    // 重新调用列表
    context.dispatch('getSpecslist')
  }

}

export default {
// 命名空间
  namespaced: true,
  actions,
  mutations,
  getters,
  state
}
